/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function (nums, target) {
  //定义map，存储键值对：（数组元素，下标）
  let map = new Map()

  for (let i = 0; i < nums.length; i++) {
    //计算当前元素的补数
    let complement = target - nums[i]
    //如果当前map中存在这个补数，返回 [i,该补数的映射]
    if (map.has(complement)) return [i, map.get(complement)]
    //如果没有匹配上，把 (nums[i],i)存入map
    map.set(nums[i], i)
  }

  //没有匹配到，返回 []
  return []
};
console.log(twoSum([2, 7, 11, 15], 9))

